/** function前的!号(叹号)或者;(分号)这不是写错了,为了防止写js结束没有分号；而可能发生报错 */
/***
 *  选择对话框
 * */
;(function (win, $) {
    function createSelectDialog(msg) {
        $(document.body).css({'overflow': 'hidden'}); // body滚动隐藏
        // 创建选择对话框的页面
        const selectDialog = $('<div id="select_dialog" class="select_dialog"></div>');
        selectDialog.css({
            'top': document.body.scrollTop,
            'left': document.body.scrollLeft
        });
        $('body').append(selectDialog);

        // 创建选择对话框盒子
        const selectDialogBox = $('<div class="select_dialog_box"></div>');
        selectDialog.append(selectDialogBox);

        // 创建选择对话框头部
        const selectDialogTop = $('<div id="select_dialog_top" class="select_dialog_top">' + msg.title + '<span onclick="SelectDialog.close()">&times;</span></div>');
        selectDialogBox.append(selectDialogTop);

        // 创建选择对话框的内容
        const selectDialogContent = $('<div id="select_dialog_content" class="select_dialog_content"></div>');
        selectDialogBox.append(selectDialogContent);
        // 用户动态添加
        if (msg.content) {
            selectDialogContent.append(msg.content);
        } else {
            const txt = $('<div class="delTips"><i class="iconfont icon-jinggao"></i>' + msg.txt + '</div>');
            selectDialogContent.append(txt);
        }

        // 创建选择对话框的底部按钮
        const selectDialogBottom = $('<div class="select_dialog_bottom text_right"></div>');
        selectDialogBox.append(selectDialogBottom);

        // 创建选择对话框的提交/确定按钮
        if (msg.subBtn) {
            const confirmBtn = $('<button class="btn_normal" onclick="SelectDialog.confirm()">' + msg.subBtn + '</button>');
            selectDialogBottom.append(confirmBtn);
        }

        // 创建选择对话框的关闭/取消按钮
        if (msg.cancelBtn) {
            const cancelBtn = $('<button class="btn_cancel" onclick="SelectDialog.close()">' + msg.cancelBtn + '</button>');
            selectDialogBottom.append(cancelBtn);
        }
    }

    // 弹出框头部按住，然后拖动整个div
    function dragPaneMove(downDiv, moveDiv) {
        $(downDiv).mousedown(function(e) {
            var isMove = true;
            var div_x = e.pageX - $(moveDiv).offset().left;
            var div_y = e.pageY - $(moveDiv).offset().top;
            $(document).mousemove(function(e) {
                if (isMove) {
                    var obj = $(moveDiv);
                    obj.css({'left': e.pageX - div_x, 'top': e.pageY - div_y});
                }
            }).mouseup(function() {
                isMove = false;
            });
        });
    }

    // 插件
    const plugin = function () { };

    var msg; // 打开时传入的参数

    plugin.open = function (params) {
        // dragPaneMove('#select_dialog_top', '#select_dialog');
        msg = params;
        createSelectDialog(params);
        plugin.confirm = msg.subBtnFun;
    };

    plugin.close = function () {
        $(document.body).css({'overflow': 'auto'});
        if ($('.select_dialog').length > 1) {
            $('.select_dialog')[$('.select_dialog').length - 1].remove();
        } else {
            $('.select_dialog').remove();
        }
    };

    // 定义插件名
    win.SelectDialog = plugin;
})(window, jQuery);

/***
 *  信息提示框
 * */
;(function (win, $) {
    /*创建信息对话框的大蒙版*/
    function createMask(type) {
        $(document.body).css({ 'overflow': 'hidden' });
        var maskDiv;
        // onclick="MsgDialog.close()"
        if (type == 'loading') {
            maskDiv = $('<div></div>');
        } else {
            maskDiv = $('<div onclick="MsgDialog.close()"></div>');
        }
        maskDiv.attr('id', 'msg_mask_div_id');
        maskDiv.css({
            'background-color': 'rgba(0,0,0,0.3)',
            'width': '100%',
            'height': '100%',
            'position': 'absolute',
            'top': document.body.scrollTop,
            'left': document.body.scrollLeft,
            'z-index': 20000000,
            'display': 'flex',
            'justify-content': 'center',
            'align-items': 'center'
        });
        $('body').append(maskDiv);
    }

    function createMsg(txt, type) {
        var msgDiv = $('<div></div>');
        msgDiv.attr('id', 'msg_div_id');
        msgDiv.css({
            'background-color': '#fff',
            'color': '#000',
            'border': '1px solid #eee',
            'padding': '35px 50px ',
            'min-width': '299px',
            'text-align': 'center'
        });
        $('#msg_mask_div_id').append(msgDiv);
        if (type == 'suc') {
            msgDiv.html('<p><i class="iconfont icon-suc"></i>' + txt + '</p>');
        } else if (type == 'fail') {
            msgDiv.html('<p><i class="iconfont icon-fail"></i>' + txt + '</p>');
        } else {
            msgDiv.html('<p><i class="iconfont icon-warn"></i>' + txt + '</p>');
        }
        $('#msg_mask_div_id p').css({
            'min-height': '24px',
            'line-height': '24px',
            'text-align': 'left'
        });
    }

    function createLoading() {
        var loadingDiv = $('<div></div>');
        loadingDiv.css({
            'background-color': 'rgba(0,0,0,0)',
            'color': '#fff',
            'font-size': '22px',
            'padding': '35px 50px ',
            'min-width': '299px',
            'text-align': 'center'
        });
        $('#msg_mask_div_id').append(loadingDiv);
        loadingDiv.html('<p>正在加载中......</p>');
    }

    var plugin = function () { };
    plugin.init = function (txt, type) {
        createMask(type);
        if (type == 'loading') {
            createLoading();
        } else {
            createMsg(txt, type);
        }
    };

    plugin.open = function (txt, type) {
        createMask(type);
        if (type == 'loading') {
            createLoading();
        } else {
            createMsg(txt, type);
            var times = 3;
            var timer = setInterval(function () {
                for (var i = 0; i < times; i++) {
                    times--;
                    if (times < 1) {
                        MsgDialog.close();
                        clearInterval(timer);
                    }
                }
            }, 1000);
        }
    };

    plugin.close = function () {
        $(document.body).css({ 'overflow': 'auto' });
        $('#msg_mask_div_id').remove();
    };

    win.MsgDialog = plugin;
})(window, jQuery);

/***
 *  操作加载显示框
 * */
; (function (win, $) {
    // 创建大蒙版
    function createMaskDiv() {
        $(document.body).css({ 'overflow': 'hidden' });
        var ctrlLoad = $('<div class="ctrl_load"></div>');
        ctrlLoad.attr('id', 'ctrl_load_id');
        ctrlLoad.css({
            'top': document.body.scrollTop,
            'left': document.body.scrollLeft,
        });
        $('body').append(ctrlLoad);

        var msg = $('<div></div>');
        ctrlLoad.append(msg);
        // 头部
        var msgTop = $('<div class="ctrl_load_top"></div>');
        msgTop.text('提示');
        msg.append(msgTop);

        // 内容
        var msgContent = $('<div class="ctrl_load_content"></div>');
        msg.append(msgContent);
        // loading图片
        var imgLoading = $('<img src="/dialog/img/pic_loading.gif" />');
        // msgContent.append(imgLoading);

        // 用动画代替img图片
        var animationLoading = $('<div class="animation_loading_box">' +
            '<div class="object object_one"></div>' +
            '<div class="object object_two"></div></div>');
        msgContent.append(animationLoading);

        // loading提示
        var msgTxt = $('<p>操作正在进行中，请勿关闭浏览器或页面......<p>');
        msgContent.append(msgTxt);
    }

    var plugin = function () { };

    // 打开
    plugin.open = function (type) {
        if (type == 'loading') {
            MsgDialog.open('正在加载中', 'loading');
        } else if (type == 'ctrlLoad') {
            createMaskDiv();
        }
    };

    // 关闭
    plugin.close = function () {
        MsgDialog.close();
        $(document.body).css({ 'overflow': 'auto' });
        $('#ctrl_load_id').remove();
    }

    // 定义插件名
    win.LoadDialog = plugin;
})(window, jQuery);
